Method and system for processing graphics simulation data

ABSTRACT

A method and system for processing graphics simulation data is disclosed. Initially, a group of three-dimensional visual models to be rendered in a graphics simulation are constructed. Data that are utilized to move and control elements of the graphics simulation are acquired. The acquired data are subsequently converted to an object oriented format having tables and functions by automatically resolving dependencies between inputs and outputs of each of internal objects with external inputs and external outputs, respectively. Next, a link is established between the data in the object oriented format using the independent and dependent variables and the elements of the graphics simulation. Finally, the data in the object oriented format are processed via a graphics simulation.

BACKGROUND OF THE INVENTION

[0001] 1. Technical Field

[0002] The present invention relates to data processing in general, andin particular to graphics processing within a data processing system.Still more particularly, the present invention relates to a method andsystem for processing graphics simulation data within a data processingsystem.

[0003] 2. Description of the Related Art

[0004] Advancements in computer-aided design technology enable engineersto run graphics simulations on a computer system to assist in thetesting of physical properties of parts or systems. The ability to rungraphics simulations of the physical properties of the parts or systemsenables engineers to identify potential design flaws or deficienciesprior to their actual manufacture and/or implementation. But even afterthe manufacture and/or implementation, graphics simulations allowengineers to visualize certain failure modes based on the data collectedfrom the actual parts or systems. For example, graphics simulations canbe utilized to determine when and where a mechanical part will failunder load conditions, thereby enabling engineers to strengthen ormodify the mechanical part to improve its performance.

[0005] Prior art graphics simulation methodologies typically fall underone of the following two categories. The first category requiresgraphics simulation software to be custom written specifically tocontrol known elements of the graphics simulation. As a result, thegraphics simulation software has to be recompiled for each uniqueelement within a system. The second category allows simulation softwareto be a little more generic in the sense that the simulation softwaremay not have to be recompiled for every unique graphics simulation, buteach controllable element in a simulation is required to be defined by arigid format and naming convention.

[0006] Consequently, it is desirable to provide an improved method forprocessing graphics simulation data within a data processing system.

SUMMARY OF THE INVENTION

[0007] In accordance with a preferred embodiment of the presentinvention, a group of three-dimensional visual models to be rendered ina graphics simulation are constructed. Data that are utilized to moveand control elements of the graphics simulation are acquired. Theacquired data are subsequently converted to an object oriented formathaving tables and functions by automatically resolving dependenciesbetween inputs and outputs of each of internal objects with externalinputs and external outputs, respectively. Next, a link is establishedbetween the data in the object oriented format using the independent anddependent variables and the elements of the graphics simulation.Finally, the data in the object oriented format are processed via agraphics simulation.

[0008] All objects, features, and advantages of the present inventionwill become apparent in the following detailed written description.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The invention itself, as well as a preferred mode of use, furtherobjects, and advantages thereof, will best be understood by reference tothe following detailed description of an illustrative embodiment whenread in conjunction with the accompanying drawings, wherein:

[0010]FIG. 1 is a block diagram of a data processing system in which apreferred embodiment of the present invention is applicable; and

[0011]FIG. 2 is a high-level logic flow diagram of a method forprocessing graphics simulation data, in accordance with a preferredembodiment of the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

[0012] The present invention may be executed in a variety of computersunder a number of different operating systems. The computer may be, forexample, a personal computer, a midrange computer or a mainframecomputer. In addition, the computer may be a stand-alone system or partof a network such as a local-area network (LAN) or a wide-area network(WAN).

[0013] Referring now to the drawings and in particular to FIG. 1, thereis illustrated a block diagram of a data processing system in which apreferred embodiment of the present invention is applicable. As shown, adata processing system 10 includes a processor 11, an input device 12,an output device 13, a memory 14, and an information source 15.Information, such as variable value data, may be received from a uservia input device 12 such as a keyboard. Output values or results may beoutput to the user via output device 13 such as a display.

[0014] By way of example, information source 15 may comprise a modellibrary 25 having one or more models 26 that may be selected by the uservia input device 12. Each of models 26 include one or more cooperativecollections of objects 27 to provide a simulation or analysis ofselected information. However, models 26 may be otherwise configured toprovide analysis, simulation or other user defined informationprocessing parameters. Objects 27 generally include data sets, datatables, or functions for processing information according to a selectedone of models 26. Each object 27 represents an instance of some class,and whose classes are all members of a hierarchy of classes united viainheritance relationships. Each object 27 includes an input variable andan output variable. Each object 27 is an identifiable, encapsulatedpiece of code and data that provide one or more services when requestedby the user. Thus, based on an input variable value, object 27 providesan output variable value corresponding to the table, data set orfunction of object 27.

[0015] Information source 15 may also include a variable identifierdatabase 20 having a unique identifier associated with each inputvariable and output variable of objects 27. For example, the uniqueidentifier may include terminology, alphanumeric designations, phrasesor other suitable identifiers to identify particular input variables andoutput variables of objects 27.

[0016] Software programs, such as a loading engine 21, an update engine22, a reporting engine 23, and an interface application 24, areillustrated as being stored in memory 14 where they can be executed byprocessor 11. Loading engine 21, update engine 22, reporting engine 23,and interface application 24 may also be stored on a variety of othertypes of storage media.

[0017] Loading engine 21 processes information from information source15 in preparation for evaluation of the information using update engine22. Loading engine 21 automatically creates object links between each ofthe input variables and output variables of objects 27 of a selected oneof models 26. Loading engine 21 may access variable identifier database20 for each object 27 included within a particular one of models 26 toautomatically determine the input and output variable of objects 27 andautomatically link corresponding input and output variables of theobjects 27.

[0018] Update engine 22 processes models 26 and automatically updateseach object within a model sequentially to obtain output variable valuesof the user-selected model based on user-defined input variable values.For example, update engine 22 sequentially updates each object of amodel to obtain output variable values for each of objects 27 withoutperforming redundant calculations. Thus, a particular one of objects 27may be updated when an output variable value of the updated object isrequired to support the update of another one of objects 27.

[0019] Reporting engine 23 may be used to display output variable valuesof a particular one of models 26 to the user via output device 13. Forexample, reporting engine 23 may provide output variable values in aparticular format or structure as defined by the user via input device12. However, reporting engine 23 may be otherwise used to display orprovide output variable values to the user.

[0020] Interface application 24 may be used to receive input variablevalues from the user via input device 12 and automatically associate thedata or input variable values received from the user to correspondinginput variables of objects 27. However, input variable values may beotherwise received and associated with the corresponding input variablesof objects 27.

[0021] With reference now to FIG. 2, there is depicted a high-levellogic flow diagram of a method for processing graphics simulation data,in accordance with a preferred embodiment of the present invention.Initially, requirements for visual simulation are defined, as shown inblock 51. For example, the basic layout of the desired visualsimulation, the desired three dimensional (3D) visual models, thesimulation data, the user interaction (i.e., how to control thesimulation playback and observer viewpoint), and the displayrequirements (i.e., update rates, output format and size, etc.) aredefined. Then, various 3D visual models to be rendered in visualsimulation are built, as depicted in block 52. The 3D visual models tobe rendered in the visual simulation may include objects such asairplanes, terrain, people, etc. Next, data that are utilized to moveand control elements of the visual simulation are built, as shown inblock 53. Instead of building, such data can also be acquired fromvarious sources such as engineering analysis, recorded flight test orflight simulation, etc. The built or acquired data are then converted toan object oriented format, such as a GEMD format, as depicted in block54. The built or acquired data has to be converted to the objectoriented format in order to remove the burden of writing custom code foreach unique visual simulation, as it is done in the prior art. A linkagebetween the object oriented data, such as GEMD data, and the elements ofthe visual simulation is then established, as shown in block 55. Theremaining visual simulation attributes are then defined, as depicted inblock 56. The remaining visual simulation attributes define the rest ofthe details such as clouds, fogs, initial viewpoint, etc., for thevisual simulation. Finally, the visual simulation software is executed,as shown in block 57.

[0022] For use in data processing system 10 (from FIG. 1), an objectoriented GEMD file preferably includes three object types, namely, adataset object, a table object, and a function object. A sample objectoriented GEMD file is depicted as follows. dataset d_gemd_sample indvartime depvar x y z h p r { function f_to_vega indvar time xloc yloc altpsi theta phi depvar x y z h p r { x = yloc / 3.281; y = −xloc / 3.281;z = −alt / 3.281; h = psi * 180 / 3.14159; p = theta * 180 / 3.14159; r= phi * 180 / 3.14159; } table t_data indvar time depvar xloc yloc altpsi theta phi { time xloc yloc alt psi theta phi 0 0 0 5000 5 3 45 0.199 14 5060 4 2 34 1 212 135 5030 3 3 4 ... 100 980 432 3500 9 −3 −55 } }

[0023] For the linkages (in block 55 of FIG. 2) to work, the top levelobject in the object oriented GEMD file has to be a dataset and has tohave a unique dataset name. The above-shown sample object oriented GEMDfile provides a dataset with the name of d_gemd_sample. Independentvariables are the variables that receive the time from the simulation.The top level dependent variables are those that are used by thesimulation to control a simulation element. An object oriented GEMDdataset, by definition, includes other datasets, tables, or functions.In this example, a function is needed to convert the source data intounits used by the visual simulation. Therefore, the above-shown objectoriented GEMD sample file uses a function called f_to_vega to take thesource data and make the necessary conversions. Again, the independentvariables have to be identified and in this example, it is not onlytime, but the source data variables that will need to be converted. Thedependent variables are those that will be returned out of the functionwith the converted values. In the above-shown object oriented GEMDsample, the x and y values are swapped, and converted from feet tometers. For the heading, pitch and roll variables (such as h,p, and r)are included with radian converted to degree.

[0024] An object oriented GEMD table is defined with the name of t_datawith the independent variable of time and the dependent variables beingthe original source data. Often the table is kept in a separate file anduses a GEMD convention of “# include” to point to that file so that itdoes not have to be edited with the header information. In the end, itis the definition of independent and dependent variables that define theway GEMD automatically determines dependencies and order of operationsin order to generate the top level dependent variables based on the toplevel independent variable.

[0025] The steps for converting raw source data into GEMD format (asdepicted in block 54 of FIG. 2) are as follows:

[0026] (A) If the data is in a tabular format, then

[0027] 1. create new file;

[0028] 2. add a GEMD table header and name;

[0029] 3. add an indvar declaration to identify time variable in theGEMD table;

[0030] 4. add a depvar declaration to identify dependent variables inthe GEMD table;

[0031] 5. add an open brace “{”;

[0032] 6. add a list of table variables;

[0033] 7. include tab or space delimited table of numbers; and

[0034] 8. add a close brace “}”.

[0035] The resulting file is then either be directly added to the GEMDfile that contains the data source definition, or it can be referencedby using the GEMD “# include” directive.

[0036] (B) If the data is in the form of an equation or set ofequations, then

[0037] 1. create a new file;

[0038] 2. add a GEMD function header and name;

[0039] 3. add an indvar declaration to identify time variable in theGEMD table;

[0040] 4. add a depvar declaration to identify dependent variables inthe GEMD table;

[0041] 5. add an open brace “{”;

[0042] 6. add equations using C/C++ like GEMD syntax; and

[0043] 7. add an close brace “}”.

[0044] As with the GEMD table in (A) above, the function can be directlyadded to the parent dataset or referenced via “# include” directive.

[0045] The steps for establishing linkage between the GEMD data and thevisual simulation elements (as depicted in block 55 of FIG. 2) are asfollows. The “DataSource” must be identified first and it defines theGEMD file and the associated top level dataset variables that will beutilized to control the visual simulation elements by

[0046] 1. identify the GEMD file to be used;

[0047] 2. identify the independent time variable; and

[0048] 3. identify the list of dependent variables.

[0049] Next, the visual simulation elements that are to be controlled bythe GEMD variables must be linked by identifying the requiredparameters. This linkage is known as the “DataPipe,” as follows:

[0050] 1. identify GEMD DataSource;

[0051] 2. identify type of visual simulation element to control (e.g.,player position, control surface deflection, enabling/disablingsymbology, etc.);

[0052] 3. identify specific element in simulation to control (e.g.,which player, which control surface, etc.); and

[0053] 4. identify the GEMD variables necessary to enable themanipulation of the visual simulation element (some require only onevariable, others might use nine or more).

[0054] After the linkage has been defined by the user, data processingsystem 10 automatically creates and associates specific controllingfunctions with the identified GEMD variables and visual simulationelements. This step occurs at the initiation of the visual simulationapplication. Then, at run-time, before each frame is rendered, thecontrolling function is invoked that calculates the necessaryinformation based on the associated GEMD variables. Once this is donefor each DataPipe, a single frame is rendered. The steps associated withthis activity are as follows. At initialization, for each DataPipe:

[0055] 1. gather DataPipe parameters defined for controlling visualsimulation element;

[0056] 2. establish controlling function appropriate for specifiedvisual simulation element;

[0057] 3. link defined GEMD variables into controlling function; and

[0058] 4. register controlling function to execute prior to therendering of each frame.

[0059] At run-time, prior to rendering each frame, each registeredcontrolling function for all DataPipes is executed prior to renderingframe and the frames are rendered.

[0060] As has been described, the present invention provides a methodand system for processing graphics simulation data within a dataprocessing system. The present invention provides the capability ofusing a graphical user interface to define specific GEMD data(variables) and how they control individual elements of the visualsimulation. Specifically, GEMD data can control an object's position, aDOF head position (allows articulation of individual pieces of anobject), dynamic text displays, turning on and off specific elements,turning on and off sounds, etc. Using such capability, a wide variety ofdata and simulation elements can be controlled without having to rewriteand recompile any software, nor do simulation elements require a rigidconstruction format or naming convention.

[0061] While the invention has been particularly shown and describedwith reference to a preferred embodiment, it will be understood by thoseskilled in the art that various changes in form and detail may be madetherein without departing from the spirit and scope of the invention.

What is claimed is:
 1. A method for processing graphics simulation datawithin a data processing system, said method comprising: constructing aplurality of three-dimensional visual models to be rendered in agraphics simulation; acquiring data that are utilized to move andcontrol elements of said graphics simulation; converting said acquireddata to an object oriented format having tables and functions byautomatically resolving dependencies between inputs and outputs of eachof internal objects with external inputs and external outputs,respectively; establishing a link between said data in said objectoriented format using said independent and dependent variables and saidelements of said graphics simulation; and processing said data in saidobject oriented format via said graphics simulation.
 2. The method ofclaim 1, wherein said method further includes defining requirements fora graphics simulation.
 3. The method of claim 1, wherein said functionsare objects.
 4. The method of claim 1, wherein said object orientedformat is GEMD format.
 5. The method of claim 1, where said externalinputs are independent variables and said external outputs are dependentvariables.
 6. A computer program product residing on a computer usablemedium for processing graphics simulation data, said computer programproduct comprising: program code means for constructing a plurality ofthree-dimensional visual models to be rendered in a graphics simulation;program code means for acquiring data that are utilized to move andcontrol elements of said graphics simulation; program code means forconverting said acquired data to an object oriented format having tablesand functions by automatically resolving dependencies between inputs andoutputs of each of internal objects with external inputs and externaloutputs, respectively; program code means for establishing a linkbetween said data in said object oriented format using said independentand dependent variables and said elements of said graphics simulation;and program code means for processing said data in said object orientedformat via said graphics simulation.
 7. The computer program product ofclaim 6, wherein said computer program product further includes programcode means for defining requirements for a graphics simulation.
 8. Thecomputer program product of claim 6, wherein said functions are objects.9. The computer program product of claim 6, wherein said object orientedformat is GEMD format.
 10. The computer program product of claim 6,where said external inputs are independent variables and said externaloutputs are dependent variables.
 11. A data processing system forprocessing graphics simulation data, said data processing systemcomprising: means for constructing a plurality of three-dimensionalvisual models to be rendered in a graphics simulation; means foracquiring data that are utilized to move and control elements of saidgraphics simulation; means for converting said acquired data to anobject oriented format having tables and functions by automaticallyresolving dependencies between inputs and outputs of each of internalobjects with external inputs and external outputs, respectively; meansfor establishing a link between said data in said object oriented formatusing said independent and dependent variables and said elements of saidgraphics simulation; and means for processing said data in said objectoriented format via said graphics simulation.
 12. The data processingsystem of claim 11, wherein said data processing system further includesmeans for defining requirements for a graphics simulation.
 13. The dataprocessing system of claim 11, wherein said functions are objects. 14.The data processing system of claim 11, wherein said object orientedformat is GEMD format.
 15. The data processing system of claim 11, wheresaid external inputs are independent variables and said external outputsare dependent variables.